# physics/update_position.py
# 根据当前速度更新火柴人的位置
# 是物理模拟中的核心步骤：位置 = 位置 + 速度

def update_position(stickman):
    """
    根据当前速度更新火柴人的位置

    参数:
        stickman: Stickman 类的实例，包含 x, y, vx, vy 属性
    """
    # === 1. 更新水平位置（x）===
    stickman.x += stickman.vx

    # === 2. 更新垂直位置（y）===
    stickman.y += stickman.vy

    # === 3. 更新碰撞矩形（rect）===
    # 火柴人位置变了，碰撞框也要同步更新
    stickman.update_rect()

    # === 4. 水平速度阻尼（可选）===
    # 如果没有按键持续输入，水平速度归零（模拟“地面摩擦”）
    # 注意：这里不清除 vx，由 input 或状态逻辑控制更合适
    # 我们在 handle_keyboard 中会根据按键设置 vx，松开即为 0